#include <iostream>

using namespace std;
const int N=20;

int w[N][N];
int dp[N][N];

int way[N];
int n,m;
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>w[i][j];
		}
	}
	
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<=m;j++)
		{
			for(int k=0;k<=j;k++)
			{
				dp[i][j]=max(dp[i][j],dp[i-1][j-k]+w[i][k]);
			}
		}
	}
	
	cout<<dp[n][m]<<endl;
	int k=m;
	for(int i=n;i>=1;i--)
	{
		for(int j=0;j<=k;j++)
		{
			if(k>=j && dp[i][k]==dp[i-1][k-j]+w[i][j])
			{
				way[i]=j;
				k-=j;
				break;
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		cout<<i<<' '<<way[i]<<endl;
	}
	
	return 0;
}
